import QtQuick 1.0
import "../WebAccess/TwitterAPI.js" as TwitterAPI
import "../Util/Util.js" as Util


ModelXmlList {
//    id: _root

    property bool isFirst: true         //最初に1回だけ処理する内容の為のフラグ

    property bool accessReady: true     //上位で読込みに関するReady状態を指定する
    property bool isReady: ready || accessReady    //状態の合成（最終的にこれを見る）

    property bool ready: status == XmlListModel.Ready

    property string sourceList: ""      //Timeline用

    property int nowAccessType: 0           //現在取得しているタイプ

    //xmlの解析関係
    query: "/lists_list/lists/list"
    XmlRole { name: "_status_id"; query: "id/string()"; isKey: true}
    XmlRole { name: "_name"; query: "name/string()"; }
    XmlRole { name: "_screen_name"; query: "user/screen_name/string()"; }
    XmlRole { name: "_slug"; query: "slug/string()"; }
    XmlRole { name: "_text"; query: "full_name/string()"; }
    XmlRole { name: "_icon"; query: "user/profile_image_url/string()";}
    XmlRole { name: "_date"; query: "created_at/string()"; }
    XmlRole { name: "_member_count"; query: "member_count/string()"; }
    XmlRole { name: "_subscriber_count"; query: "subscriber_count/string()"; }
    XmlRole { name: "_mode"; query: "mode/string()"; }




    //最新のページを取得する
    function recent() {
    }

    //次のページを取得する
    function more() {
    }




    //最新を取得する
    function getRecent(){
        //自分のリスト
        nowAccessType = 0;
        makeTwitterUrl(nowAccessType);
    }

    //次のページを取得する
    function getMore(){
    }


    //TwitterのURLを取得する
    function makeTwitterUrl(type){
        sourceList = TwitterAPI.getListListsURL(type);
    }

    ///////////////////////////////////////////////
    //HTTPにアクセスし受信内容を確認します
    function requestHttp( method , url , on_func )
    {
        //XMLHttpRequestオブジェクト生成
        var httpoj = new XMLHttpRequest();
        //open メソッド
        httpoj.open( method , url , true );
        //受信時に起動するイベント
        httpoj.onreadystatechange = function(){
            //readyState値は4で受信完了
            if (httpoj.readyState==4){
                //コールバック
                if(on_func !== null){
                    on_func(httpoj.responseText);
                }
            }
        }
        //send メソッド
        httpoj.send( data );
    }


    //////////////////////////////////////////////////////
    //ソースが変更されたらHTTPアクセスする
    onSourceListChanged: {
//        Util.outputDebugString("ModelListLists::onSourceTimelineChanged:\n" + sourceTimeline);
        if(!isReady && (nowAccessType !== 0)){
            //処理中
            Util.outputDebugString("ModelListLists::onSourceTimelineChanged: busy")
        }else if(sourceList.length === 0){
            Util.outputDebugString("ModelListLists::onSourceTimelineChanged: source lenght = 0")
        }else{
            Util.outputDebugString("ModelListLists::onSourceTimelineChanged: start access")
            //Readyを落とす
            accessReady = false;
            //読込み開始
            var url = sourceList;
            requestHttp("GET", url, onListResponse);
        }
    }
    //アクセスの結果の応答
    function onListResponse(responseText){
//        Util.outputDebugString("ModelListLists::onTimelineResponse:" + responseText);
        //読込み完了
        xml = responseText;
        //Readyにする
        accessReady = true;
    }


    //追加完了
    onFinishAppend: {
        //フォローしてるリスト
        if(nowAccessType === 0){
            nowAccessType = 1;
            makeTwitterUrl(nowAccessType);
        }
    }
}
